7z Format

7z is the new archive format, providing high compression ratio.

The main features of 7z format:

7z has open architecture, so it can support any new compression methods.

Now the following methods are integrated to 7z:

Method Description
LZMA Improved and optimized version of LZ77 algorithm
PPMD Dmitry Shkarin's PPMdH with small changes
BCJ Converter for 32-bit x86 executables
BCJ2 Converter for 32-bit x86 executables
BZip2 Standard BWT algorithm
Deflate Standard LZ77-based algorithm

LZMA is default and general compression method of 7z format. The main features of LZMA method:

LZMA compression algorithm is very suitable for embedded applications. If you want to use LZMA code, you can ask consultations, custom code programming and required developer licenses at

www.7-zip.org/support.html

7-Zip also supports encryption with AES-256 algorithm. This algorithm uses cipher key with length of 256 bits. To create that key 7-Zip uses derivation function based on SHA-256 hash algorithm. A key derivation function produces a derived key from text password defined by user. For increasing the cost of exhaustive search for passwords 7-Zip uses big number of iterations to produce cipher key from text password.

Tips for password length selecting

We will estimate time of exhaustive password search attack, when password is random sequence of small Latin letters.

We suppose that one user can check 10 passwords per second and organization (with budget about $1 billion) can check 10 billions passwords per second. We also suppose that each 2 years processor doubles it's performance, so each additional Latin letter of long password adds about 9 years against exhaustive key search attack.

So we have such estimated time for attack:

Password Length Single User Attack Organization Attack
1 2 s 1 s
2 1 min 1 s
3 30 min 1 s
4 12 hours 1 s
5 14 days 1 s
6 1 year 1 s
7 10 years 1 s
8 19 years 20 s
9 26 years 9 min
10 37 years 4 hours
11 46 years 4 days
12 55 years 4 months
13 64 years 4 years
14 73 years 13 years
15 82 years 22 years
16 91 years 31 years
17 100 years 40 years